DOMTokenList

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

DOMTokenList 介面表示一組以空白分隔的標記。這類集合通常由 Element.classListHTMLLinkElement.relList 等屬性回傳。

DOMTokenList 的索引從 0 開始,與 JavaScript 的 Array 物件相同。DOMTokenList 永遠區分大小寫。

實例屬性

DOMTokenList.length Read only

一個 integer,代表此物件中儲存的項目數量。

DOMTokenList.value

一個 stringifier 屬性,會以字串形式回傳整個清單的值。

實例方法

DOMTokenList.item()

根據索引回傳清單中的項目,若索引超過或等於清單的 length,則回傳 null

DOMTokenList.contains()

若清單中包含指定的標記,則回傳 true,否則回傳 false

DOMTokenList.add()

將指定的標記加入清單中。

DOMTokenList.remove()

從清單中移除指定的標記。

DOMTokenList.replace()

以另一個標記取代原有標記。

DOMTokenList.supports()

若指定的標記為關聯屬性所支援的標記,則回傳 true

DOMTokenList.toggle()

若清單中已存在該標記,則移除;否則加入。會回傳一個布林值,表示操作後該標記是否存在於清單中。

DOMTokenList.entries()

回傳一個迭代器,可用來遍歷此物件內所有鍵/值對。

DOMTokenList.forEach()

為清單中的每個元素執行一次所提供的回呼函式。

DOMTokenList.keys()

回傳一個迭代器,可用來遍歷此物件內所有鍵/值對的鍵。

DOMTokenList.toString()

回傳 DOMTokenList.value,也就是以空白分隔的清單字串。

DOMTokenList.values()

回傳一個迭代器,可用來遍歷此物件內所有鍵/值對的值。

範例

以下簡單範例中,我們使用 Element.classList 取得一個 <p> 元素的類別清單(DOMTokenList),接著使用 DOMTokenList.add() 新增一個類別,最後將 Node.textContent 更新為 DOMTokenList 的內容。

首先是 HTML:

html
<p class="a b c"></p>

接著是 JavaScript:

js
let para = document.querySelector("p");
let classes = para.classList;
para.classList.add("d");
para.textContent = `段落類別清單是 "${classes}"`;

輸出結果如下所示:

空白修剪與重複項目移除

會修改 DOMTokenList 的方法(例如 DOMTokenList.add())會自動修剪多餘的空白並移除清單中的重複值。例如:

html
<span class="    d   d e f"></span>
js
let span = document.querySelector("span");
let classes = span.classList;
span.classList.add("x");
span.textContent = `行內容器類別清單是 "${classes}"`;

輸出結果如下所示:

規範

Specification
DOM
# interface-domtokenlist

瀏覽器相容性